--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
electron/messageNotifications.js HEAD (b89dc9e6) Text, 2.49 KB
T8b949e// SPDX-License-Identifier: 0BSD
T8b949e/**
* In-process map of Electron Notification instances keyed by destination hash.
* Extracted for unit tests without loading the full Electron main process.
*/
T8b949e/** @type {Map<string, Set<{ close: () => void }>>} */
Tff7b72const Te6edf3byDestination Tff7b72= Tff7b72new Tffa657MapTb4b4b4(Tb4b4b4)Tb4b4b4;
T8b949e/**
* @param {string|null|undefined} destinationHash
* @returns {string}
*/
Tff7b72export Tff7b72function Te6edf3normalizeNotifDestinationHashTb4b4b4(Te6edf3destinationHashTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3destinationHash Tff7b72== Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff""Tb4b4b4;
Tb4b4b4}
Tff7b72return Tffa657StringTb4b4b4(Te6edf3destinationHashTb4b4b4)Tb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e/**
* @param {string|null|undefined} destinationHash
* @param {{ close: () => void }} notification
*/
Tff7b72export Tff7b72function Te6edf3trackMessageNotificationTb4b4b4(Te6edf3destinationHashTb4b4b4, Te6edf3notificationTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3key Tff7b72= Te6edf3normalizeNotifDestinationHashTb4b4b4(Te6edf3destinationHashTb4b4b4) Tff7b72|| Ta5d6ff"__untagged__"Tb4b4b4;
Tff7b72let Te6edf3set Tff7b72= Te6edf3byDestinationTb4b4b4.Te6edf3getTb4b4b4(Te6edf3keyTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3setTb4b4b4) Tb4b4b4{
Te6edf3set Tff7b72= Tff7b72new Tffa657SetTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3byDestinationTb4b4b4.Te6edf3setTb4b4b4(Te6edf3keyTb4b4b4, Te6edf3setTb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3setTb4b4b4.Te6edf3addTb4b4b4(Te6edf3notificationTb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e/**
* @param {string|null|undefined} destinationHash
* @param {{ close: () => void }} notification
*/
Tff7b72export Tff7b72function Te6edf3untrackMessageNotificationTb4b4b4(Te6edf3destinationHashTb4b4b4, Te6edf3notificationTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3key Tff7b72= Te6edf3normalizeNotifDestinationHashTb4b4b4(Te6edf3destinationHashTb4b4b4) Tff7b72|| Ta5d6ff"__untagged__"Tb4b4b4;
Tff7b72const Te6edf3set Tff7b72= Te6edf3byDestinationTb4b4b4.Te6edf3getTb4b4b4(Te6edf3keyTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3setTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3setTb4b4b4.Tff7b72deleteTb4b4b4(Te6edf3notificationTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3setTb4b4b4.Te6edf3size Tff7b72=== T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3byDestinationTb4b4b4.Tff7b72deleteTb4b4b4(Te6edf3keyTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
T8b949e/**
* @param {string|null|undefined} destinationHash
* @returns {number} closed count
*/
Tff7b72export Tff7b72function Te6edf3closeMessageNotificationsForTb4b4b4(Te6edf3destinationHashTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3key Tff7b72= Te6edf3normalizeNotifDestinationHashTb4b4b4(Te6edf3destinationHashTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3keyTb4b4b4) Tb4b4b4{
Tff7b72return T79c0ff0Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3set Tff7b72= Te6edf3byDestinationTb4b4b4.Te6edf3getTb4b4b4(Te6edf3keyTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3setTb4b4b4) Tb4b4b4{
Tff7b72return T79c0ff0Tb4b4b4;
Tb4b4b4}
Tff7b72let Te6edf3closed Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3n Tff7b72of Tffa657ArrayTb4b4b4.Tff7b72fromTb4b4b4(Te6edf3setTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Te6edf3nTb4b4b4.Te6edf3closeTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3closed Tff7b72+= T79c0ff1Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
T8b949e// ignore
Tb4b4b4}
Tb4b4b4}
Te6edf3byDestinationTb4b4b4.Tff7b72deleteTb4b4b4(Te6edf3keyTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3closedTb4b4b4;
Tb4b4b4}
T8b949e/**
* @returns {number} closed count
*/
Tff7b72export Tff7b72function Te6edf3closeAllMessageNotificationsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72let Te6edf3closed Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3set Tff7b72of Te6edf3byDestinationTb4b4b4.Te6edf3valuesTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3n Tff7b72of Tffa657ArrayTb4b4b4.Tff7b72fromTb4b4b4(Te6edf3setTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Te6edf3nTb4b4b4.Te6edf3closeTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3closed Tff7b72+= T79c0ff1Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
T8b949e// ignore
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Te6edf3byDestinationTb4b4b4.Te6edf3clearTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3closedTb4b4b4;
Tb4b4b4}
T8b949e/** Test helper. */
Tff7b72export Tff7b72function Te6edf3resetMessageNotificationTrackerForTestsTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3byDestinationTb4b4b4.Te6edf3clearTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────